import { INPUT_WORD_LIMIT, SUBMIT_CONTENT_LIMIT } from "../utils/constants";

const getDefaultOptions = () => {
  return {
    // 紧凑模式
    dense: false,
    // 关闭默认通知（回复、提及）
    disableNotifications: false,
    // 是否在WebFramework中集成的评论功能
    webFramework: false,
    // 评论/回复/发送按钮的文字
    sendButtonText: null,
    // 无数据时的提示文字
    emptyText: null,
    // 输入框文字数限制
    inputMaxLength: INPUT_WORD_LIMIT,
  };
};

export const useOptionsVue2 = (Vue, options = {}) => {
  if (options.inputMaxLength < 0 ||
    options.inputMaxLength > SUBMIT_CONTENT_LIMIT) {
    throw new Error(`parameter inputMaxLength is invalid: ${options.inputMaxLength}\r\n
    ensure be in rage of 1 ~ ${SUBMIT_CONTENT_LIMIT}
    `);
  }

  const defaultOptions = getDefaultOptions();
  const opts = Object.assign(defaultOptions, options);
  Vue.prototype.$commentOptions = Object.freeze(opts);
};
